home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / GEDEV100.ZIP;1 / PASCAL.ZIP / GESTRUCT.INC < prev    next >
Encoding:
Text File  |  1992-10-12  |  16.7 KB  |  444 lines

  1. (*
  2. **  gestruct.inc
  3. **
  4. **  System data files definitions for GEcho 1.00
  5. **
  6. **  Copyright (C) 1992 Gerard J. van der Land. All rights reserved.
  7. **
  8. **  All information in this document is subject to change at any time
  9. **  without prior notice.
  10. **
  11. **  Last revision: 12-Oct-92
  12. **
  13. **  Strings are NUL padded and NUL terminated arrays of char type.
  14. **  Path names are back slash ('\') terminated.
  15. *)
  16.  
  17. const
  18.    GE_THISREV = $0002;  (* System file revision level *)
  19.    AKAS       = 11;     (* Main + AKA's *)
  20.    UPLINKS    = 10;     (* AreaMgr uplinks *)
  21.    USERS      = 10;     (* User names *)
  22.    MAXAREAS   = 1024;   (* Area records *)
  23.    MAXSYSTEMS = 350;    (* Systems per area *)
  24.    MAXNODES   = 512;    (* Node records *)
  25.  
  26. (* --- Datatypes *)
  27.  
  28. type
  29.    dword = longint;  (* Turbo Pascal doesn't support unsigned longint's *)
  30.    Arr9  = array[1..09] of char;
  31.    Arr13 = array[1..13] of char;
  32.    Arr17 = array[1..17] of char;
  33.    Arr20 = array[1..20] of char;
  34.    Arr21 = array[1..21] of char;
  35.    Arr30 = array[1..30] of char;
  36.    Arr31 = array[1..31] of char;
  37.    Arr36 = array[1..36] of char;
  38.    Arr51 = array[1..51] of char;
  39.    Arr53 = array[1..53] of char;
  40.    Arr61 = array[1..61] of char;
  41.    Arr65 = array[1..65] of char;
  42.  
  43. (* --- Address type *)
  44.  
  45. type
  46.    ADDRESS = record
  47.       zone  : word;
  48.       net   : word;
  49.       node  : word; 
  50.       point : word;
  51.    end;
  52.  
  53. (* --- Log levels *)
  54.  
  55. const
  56.    LOG_INBOUND    = $0001;
  57.    LOG_OUTBOUND   = $0002;
  58.    LOG_PACKETS    = $0004;
  59.    LOG_UNEXPECT   = $0008;
  60.    LOG_AREAMGR    = $0010;
  61.    LOG_EXTPKTINFO = $0040;
  62.    LOG_NETEXPORT  = $0100;
  63.    LOG_NETIMPORT  = $0200;
  64.    LOG_NETPACK    = $0400;
  65.    LOG_NETMOVED   = $0800;
  66.    LOG_STATISTICS = $2000;
  67.    LOG_MBUTIL     = $4000;
  68.    LOG_DEBUG      = $8000;
  69.  
  70. (* --- Log styles *)
  71.  
  72. const
  73.    LOG_FD      = 0;
  74.    LOG_BINK    = 1;
  75.    LOG_QUICK   = 2;
  76.    LOG_DBRIDGE = 3;
  77.  
  78. (* --- Setup option bits *)
  79.  
  80. const
  81.    NOKILLNULL = $0001;  (* Don't kill null netmail messages while tossing *)
  82.    RESCANOK   = $0002;  (* Allow rescan *)
  83.    KEEPREQS   = $0004;  (* Keep AreaMgr requests *)
  84.    NONODEADD  = $0008;  (* Don't automatically add NodeMgr records *)
  85.    NOUSERSBBS = $0010;  (* Don't let Import check USERS.BBS *)
  86.    USEBUFFERS = $0020;  (* Use outbound buffers *)
  87.    KEEPNET    = $0040;  (* Don't use Kill/Sent on exported netmail *)
  88.    KEEPMGR    = $0080;  (* Don't use Kill/Sent on MGR receipts *)
  89.    KILLDUPES  = $0200;  (* Kill duplicate messages *)
  90.    ARCMAIL    = $0400;  (* Use ARCmail 0.60 naming for out-of-zone mail *)
  91.    NOCRSTRIP  = $0800;  (* Don't strip Soft-CRs *)
  92.    NOPIDSTRIP = $1000;  (* Don't strip PIDs *)
  93.    NOAUTODISC = $2000;  (* Don't automatically disconnect empty PT areas *)
  94.    NOCHECKEND = $4000;  (* Don't check for valid end of archives *)
  95.    SETPVT     = $8000;  (* Set Pvt on imported netmail messages *)
  96.  
  97. (* --- Extra option bits *)
  98.  
  99. const
  100.    NOCHKDEST = $0001;  (* Don't check packet destination *)
  101.    AREASBBS  = $0002;  (* Use AREAS.BBS for MBUTIL *)
  102.    PASSIVEOK = $0004;  (* Allow %PASSIVE *)
  103.  
  104. (* --- Compression types *)
  105.  
  106. const
  107.    PR_ARC = 0;  (* For compressed mail files created by ARC or PKPAK *)
  108.    PR_ARJ = 1;  (* For compressed mail files created by ARJ *)
  109.    PR_LZH = 2;  (* For compressed mail files created by LHA *)
  110.    PR_PAK = 3;  (* For compressed mail files created by PAK *)
  111.    PR_ZIP = 4;  (* For compressed mail files created by PKZIP *)
  112.    PR_ZOO = 5;  (* For compressed mail files created by ZOO *)
  113.    PR_SQZ = 6;  (* For compressed mail files created by SQZ *)
  114.  
  115. (* --- Locking method *)
  116.  
  117. const
  118.    LOCK_OFF   = 0;  (* Deny Write (Exclusive) *)
  119.    LOCK_RA101 = 1;  (* RemoteAccess 1.01 (SHARE) *)
  120.    LOCK_RA110 = 2;  (* RemoteAccess 1.10/1.11 (SHARE) *)
  121.  
  122. (* --- Semaphore mode *)
  123.  
  124. const
  125.    SEMPAHORE_OFF = 0;  (* Don't use semaphores *)
  126.    SEMAPHORE_FD  = 1;  (* FrontDoor 2.xx *)
  127.    SEMAPHORE_IM  = 2;  (* InterMail 2.xx *)
  128.    SEMAPHORE_DB  = 3;  (* D'Bridge 1.3x *)
  129.    SEMAPHORE_BT  = 4;  (* BinkleyTerm 2.5x *)
  130.  
  131. (* --- Mailer type *)
  132.  
  133. const
  134.    MAILER_FD = 0;  (* FrontDoor *)
  135.    MAILER_DB = 1;  (* D'Bridge *)
  136.    MAILER_BT = 2;  (* BinkleyTerm *)
  137.  
  138. (* --- Uplink option bits *)
  139.  
  140. const
  141.    UPLINK_DIRECT  = $01;
  142.    UPLINK_ALWAYS  = $02;
  143.    UPLINK_ADDPLUS = $04;
  144.  
  145. type
  146.    UPLINK = record
  147.       address  : ADDRESS;   (* Uplink address *)
  148.       areafix  : Arr9;      (* AreaFix program *)
  149.       password : Arr17;     (* AreaFix password *)
  150.       filename : Arr13;     (* "Forward List" filename *)
  151.       unused   : array[1..6] of byte;
  152.       options  : byte;      (* See --- Uplink options bits *)
  153.       filetype : byte;      (* 0 = Random, 1 = "<areaname> <description>" *)
  154.       groups   : dword;     (* Nodes must have one of these groups *)
  155.       origin   : byte;      (* Origin AKA *)
  156.    end;
  157.  
  158. type
  159.    AKAMATCH = record
  160.       zone : word;
  161.       net  : word;
  162.       aka  : byte;
  163.    end;
  164.  
  165. (* --- SETUP.GE structure *)
  166.  
  167. type
  168.    SETUP_GE = record
  169.       sysrev          : word;   (* Must contain GE_THISREV above *)
  170.       options         : word;   (* Options bits, see --- Setup option bits *)
  171.       autorenum       : word;   (* Auto renumber value *)
  172.       maxpktsize      : word;   (* Maximum packet size, 0 = unlimited *)
  173.       logstyle        : byte;   (* See --- Log styles *)
  174.       oldnetmailboard : byte;   (* Netmail board, must be zero now *)
  175.       badboard        : byte;   (* Where bad echomail is stored (0 = path) *)
  176.       dupboard        : byte;   (* Where duplicates are stored (0 = path) *)
  177.       recoveryboard   : byte;   (* Recovery board (1-200, 0 = delete) *)
  178.       filebuffer      : byte;   (* Size (in KB) of MBU file I/O buffer *)
  179.       days            : byte;   (* Days to keep old mail around *)
  180.       swapping        : byte;   (* Swapping method *)
  181.       compr_default   : byte;   (* Default compresion type *)
  182.       color : array[0..14] of byte;  (* See --- Personal Mail colors *)
  183.       aka : array[1..AKAS] of ADDRESS;    (* Main address and AKA's *)
  184.       pointnet : array[1..AKAS] of word;  (* Pointnets for all addresses *)
  185.       gekey    : dword;         (* GEcho registration key *)
  186.       mbukey   : dword;         (* MBUTIL registration key *)
  187.       geregto  : Arr51;         (* Text used to generate the GEcho key *)
  188.       mburegto : Arr51;         (* Text used to generate the MBUTIL key *)
  189.       username : array[1..USERS] of Arr36; (* User names *)
  190.       mbpath          : Arr53;  (* Hudson message base path *)
  191.       mailpath        : Arr53;  (* Netmail path *)
  192.       inbound_path    : Arr53;  (* Where incoming compressed mail is stored *)
  193.       outbound_path   : Arr53;  (* Where outgoing compressed mail is stored *)
  194.       editor          : Arr65;  (* External full screen editor used by PM *)
  195.       nodepath        : Arr53;  (* Nodelist directory used by PMNC and PM *)
  196.       areasfile       : Arr65;  (* AREAS.BBS style file *)
  197.       logfile         : Arr65;  (* GEcho/MBUTIL log file *)
  198.       mgrlogfile      : Arr65;  (* AreaMgr log file *)
  199.       swap_path       : Arr53;  (* Swap path *)
  200.       tear_line       : Arr31;  (* Tearline to be placed by MBUTIL Export *)
  201.       originline : array[1..20] of Arr61;  (* Origin lines *)
  202.       compr_prog       : array[1..10] of Arr13;  (* Compression program filenames *)
  203.       compr_switches   : array[1..10] of Arr20;  (* Compression program switches *)
  204.       decompr_prog     : array[1..10] of Arr13;  (* Decompression program filenames *)
  205.       decompr_switches : array[1..10] of Arr20;  (* Decompression program switches *)
  206.       groups : array[1..26] of Arr21;  (* Descriptions of area groups *)
  207.       lockmode       : byte;    (* See --- Locking method *)
  208.       secure_path    : Arr53;   (* From which secure PKTs are tossed *)
  209.       rcvdmailpath   : Arr53;   (* Directory to which Rcvd netmail is moved *)
  210.       sentmailpath   : Arr53;   (* Directory to which Sent netmail is moved *)
  211.       semaphorepath  : Arr53;   (* Where FD rescan files are stored *)
  212.       version_major  : byte;
  213.       version_minor  : byte;
  214.       semaphore_mode : byte;    (* See --- Semaphore mode's *)
  215.       badecho_path   : Arr53;   (* Where sec. violating and unknown mail is stored *)
  216.       mailer_type    : byte;    (* See --- Mailer type *)
  217.       loglevel       : word;    (* See --- Log level *)
  218.       akamatch : array[1..20] of AKAMATCH;  (* AKA matching table *)
  219.       mbulogfile     : Arr65;   (* MBUTIL log file *)
  220.       maxqqqs        : word;    (* Max. number of QQQ info stored in memory *)
  221.       maxqqqopen     : byte;    (* Not used *)
  222.       maxhandles     : byte;    (* Max. number of files used by GEcho *)
  223.       maxarcsize     : word;    (* Max. archive size, 0 = unlimited *)
  224.       unused : array[1..2] of byte;  (* Unused space *)
  225.       extraoptions   : word;    (* See --- Extra option bits *)
  226.       firstboard     : byte;    (* First available new board (0 = *.MSG) *)
  227.       reserved1      : word;    (* Reserved *)
  228.       copy_persmail  : word;    (* Copy personal mail for user (bits 0-9) *)
  229.       persmailboard  : array[1..USERS] of byte; (* Personal mail board (0 = path) *)
  230.       public_groups  : dword;   (* Public groups (bits 0-25) *)
  231.       dupentries     : word;    (* Number of duplicate entries in ECHODUPE.GE *)
  232.       rcvdboard      : byte;    (* Where Rcvd netmail is moved to (0 = path) *)
  233.       sentboard      : byte;    (* Where Sent netmail is moved to (0 = path) *)
  234.       akaboard  : array[1..AKAS] of byte;   (* Netmail boards for AKA's *)
  235.       userboard : array[1..USERS] of byte;  (* Netmail boards for system users, 255 = use AKA board *)
  236.       reserved2      : byte;    (* Reserved *)
  237.       uplink : array[1..UPLINKS] of UPLINK;  (* Uplink manager information *)
  238.       persmail_path  : Arr53;   (* Path to store copies of personal echomail *)
  239.       outpkts_path   : Arr53;   (* Where outbound packets are temp. stored *)
  240.       compr_mem : array[1..10] of word;    (* Memory needed for compression programs *)
  241.       decompr_mem : array[1..10] of word;  (* Memory needed for decompression programs *)
  242.       pwdcrc         : dword;   (* CRC-32 of access password, -1L = no password *)
  243.       default_msgs   : word;    (* Maximum number of messages       (Purge) *)
  244.       default_days   : word;    (* Maximum age of non-Rcvd messages (Purge) *)
  245.       gus_prog       : Arr13;   (* General Unpack Shell program filename *)
  246.       gus_switches   : Arr20;   (* GUS switches *)
  247.       gus_mem        : word;    (* Memory needed for GUS *)
  248.       default_rcvd   : word;    (* Maximum age of Rcvd messages     (Purge) *)
  249.    end;
  250.  
  251. (***************************************************************************)
  252.  
  253. (* --- Area options bits *)
  254.  
  255. const
  256.    IMPORTSB = $0001;  (* Import SEEN-BY lines to message base *)
  257.    SECURITY = $0002;  (* Only accept mail from systems in the exportlist *)
  258.    PASSTHRU = $0004;  (* Mail is not imported, only forwarded *)
  259.    VISIBLE  = $0008;  (* Area is visible for anyone in AreaMgr's %LIST *)
  260.    REMOVED  = $0010;  (* Area should be removed by GSETUP Pack *)
  261.    NOUNLINK = $0020;  (* Do not allow users to unlink this area *)
  262.    TINYSB   = $0040;  (* Tiny SEEN-BYs without systems not in exportlist *)
  263.    PVT      = $0080;  (* Private bits are preserved and are not stripped *)
  264.    CHECKSB  = $0100;  (* Use SEEN-BYs for duplicate prevention *)
  265.    NOSLEEP  = $0200;  (* Do not allow users to make this area passive *)
  266.    SDM      = $0400;  (* Area is *.MSG style *)
  267.    NOTIFIED = $4000;  (* Sysop notified that area was disconnected *)
  268.    UPLDISC  = $8000;  (* Disconnected from uplink (only for PT areas) *)
  269.  
  270. (* --- Area type *)
  271.  
  272. const
  273.    ECHOMAIL = 0;
  274.    NETMAIL  = 1;
  275.    LOCAL    = 2;
  276.    BADECHO  = 3;
  277.    PERSONAL = 4;
  278.  
  279. (* --- AREAFILE.GE header *)
  280.  
  281. type
  282.    AREAFILE_HDR = record
  283.       hdrsize : word;  (* sizeof(AREAFILE_HDR) *)
  284.       recsize : word;  (* Size of an area file record, excluding exportlist *)
  285.       systems : word;  (* Number of entries in the export list (1-MAXSYSTEMS) *)
  286.    end;
  287.  
  288. type
  289.    AREAFILE_GE = record
  290.       name         : Arr51;  (* AREA tag, must be uppercase, no spaces *)
  291.       comment      : Arr61;  (* Description of the topics discussed in area *)
  292.       path         : Arr51;  (* Location where *.MSG files are stored *)
  293.       originline   : Arr61;  (* Custom origin line, used if origlinenr = 0 *)
  294.       areanumber   : word;   (* Area number 1-MAXAREAS, 1-200 = Hudson *)
  295.       group        : char;   (* Group (A-Z) *)
  296.       options      : word;   (* See --- Area options bits *)
  297.       originlinenr : byte;   (* Origin line (1-20, 0 = custom) *)
  298.       pkt_origin   : byte;   (* Address for the packet/Origin line (0-10) *)
  299.       seenbys      : word;   (* Addresses (bits 0-10) to add to the SEEN-BY *)
  300.       reserved     : word;
  301.       msgs         : word;   (* Maximum number of messages       (MBUTIL Purge) *)
  302.       days         : word;   (* Maximum age of non-Rcvd messages (MBUTIL Purge) *)
  303.       rcvddays     : word;   (* Maximum age of Rcvd messages     (MBUTIL Purge) *)
  304.       areatype     : byte;   (* See --- Area type *)
  305.    end;
  306.  
  307. (* --- Export entry status bits *)
  308.  
  309. const
  310.    EXPT_NOREAD   = $01;  (* Accept from but don't forward to this system *)
  311.    EXPT_NOWRITE  = $02;  (* Don't accept from but do foward to this system *)
  312.    EXPT_HOLD     = $04;  (* Temporary don't send this area to this system *)
  313.    EXPT_NOUNLINK = $08;  (* Don't allow system to disconnect *)
  314.  
  315. (* --- Export list entry *)
  316.  
  317. type
  318.    EXPORTENTRY = record
  319.       address : ADDRESS;
  320.       status  : byte;
  321.    end;
  322.  
  323. (* --- AREAFILE.GEX index entry *)
  324.  
  325. type
  326.    AREAFILE_GEX = record
  327.       crc32      : longint;   (* CRC-32 on areaname *)
  328.       areanumber : word;      (* Area number (1-MAXAREAS, 1-200 = Hudson) *)
  329.       offset     : longint;   (* File offset of record in AREAFILE.GE *)
  330.    end;
  331.  
  332. (***************************************************************************)
  333.  
  334. (* --- Status:
  335.    $0000 = None
  336.    $0002 = Crash
  337.    $0200 = Hold
  338.    $FFFF = Removed entry
  339. *)
  340.  
  341. (* --- Node option bits *)
  342.  
  343. const
  344.    REMOTEMAINT = $0001;
  345.    ALLOWRESCAN = $0002;
  346.    FORWARDREQ  = $0004;
  347.    DIRECT      = $0008;
  348.    NONOTIFY    = $0010;
  349.  
  350. (* --- NODEFILE.GE header *)
  351.  
  352. type
  353.    NODEFILE_HDR = record
  354.       hdrsize : word;  (* sizeof(NODEFILE_HDR) *)
  355.       recsize : word;  (* sizeof(NODEFILE_GE) *)
  356.    end;
  357.  
  358. (* --- NODEFILE.GE record *)
  359.  
  360. type
  361.    NODEFILE_GE = record
  362.       address   : ADDRESS;   (* Address of the system *)
  363.       sysop     : Arr36;     (* Name of the sysop or point *)
  364.       pktpwd    : Arr9;      (* Packet (session) password *)
  365.       mgrpwd    : Arr17;     (* AreaMgr password *)
  366.       groups    : dword;     (* AreaMgr groups (bits 0-25) *)
  367.       options   : word;      (* See --- Node option bits *)
  368.       comprtype : byte;      (* Compression type (0 - 9, 10 = PKT) *)
  369.       status    : word;      (* File attach status. See above *)
  370.       route_to  : ADDRESS;   (* Address to route mail files to *)
  371.    end;
  372.  
  373. (* --- NODEFILE.GEX index entry *)
  374.  
  375. type
  376.    NODEFILE_GEX = record
  377.       address : ADDRESS;  (* Address of the system *)
  378.       offset  : longint;  (* File offset of record in NODEFILE.GE *)
  379.    end;
  380.  
  381. (***************************************************************************)
  382.  
  383. (* --- Routed node entry *)
  384.  
  385. type
  386.    ROUTE = record
  387.       node   : ADDRESS;
  388.       status : byte;
  389.       via    : byte;
  390.    end;
  391.  
  392. (* --- PACKFILE.GE structure *)
  393.  
  394. type
  395.    PACKFILE_GE = record
  396.       Via   : array[1..60] of ADDRESS;
  397.       Route : array[1..640] of ROUTE;
  398.    end;
  399.  
  400. (***************************************************************************)
  401.  
  402. (* --- ECHODUPE.GE structure *)
  403.  
  404. type
  405.    ECHODUPE_GE = record
  406.       pointer : word;  (* Next offset *)
  407.       entries : word;  (* Number of entries in the database *)
  408. (*    crc32_high : array[1..entries];  CRC-32's on headers, high portions *)
  409. (*    crc32_low  : array[1..entries];  CRC-32's on headers, low portions  *)
  410.    end;
  411.  
  412. (***************************************************************************)
  413.  
  414. (* --- FTSCPROD.GE record *)
  415.  
  416. type
  417.    FTSCPROD_GE = record
  418.       cap  : byte;   (* Capability, 0 = Type 2.0, 1 = Type 2.1, 2 = Type 2+ *)
  419.       name : Arr30;  (* Name of product *)
  420.    end;
  421.  
  422. (***************************************************************************)
  423.  
  424. (* --- Personal Mail colors (same as used by FrontDoor editor FM) *)
  425.  
  426. const
  427.    top_line              =  0;
  428.    status_line           =  1;
  429.    error                 =  2;
  430.    text                  =  3;
  431.    text_quotes           =  4;
  432.    text_reverse          =  5;
  433.    text_hardCRs          =  6;
  434.    header                =  7;
  435.    header_data           =  8;
  436.    header_data_highlight =  9;
  437.    data_entry            = 10;
  438.    window_frame          = 11;
  439.    window_text           = 12;
  440.    window_select         = 13;
  441.    window_highlight      = 14;
  442.  
  443. (* end of file "gestruct.inc" *)
  444.